﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocManagerORM.ORM;
using DS2171Utils;
using DocManagerORM.Caching;
using System.Reflection;

namespace DocManager
{
   public  class GLOBAL
    {

       private static GLOBAL m_GLOBAL = new GLOBAL(); 

        public static Guid GuidUtente { get; set; }
        public static string[] RuoliUtente { get; set; }
        public static string UserName { get; set; }
        public static string UserID { get; set; }
        public static SettingsBaseApplicazione SettingsDiBaseApplicazione { get; set; }

       
        public static GLOBAL getInstance() { return m_GLOBAL; }


         public  GLOBAL()
        {
            if (!QueryBase.tryOpenConn(true, true))
            {
                return;
            }

 
            InizializzaApplicazione();
        }

       public static Lazy<DocManagerDbEntities> ENTITY
       {
           get
           {
               return new Lazy<DocManagerDbEntities>(() => { return new DocManagerDbEntities(); });                
           }
       }//fM


       public static SettingsBaseApplicazione GetSettingsBaseApplicazione()
       {
          return QueryBase.getSettingsBaseApplicazione(); 
       }

       private static void InizializzaApplicazione()
       {
           TheLogger.loggaNet("Enter", System.Diagnostics.TraceEventType.Information); 
           //using (var log = TheLogger.LoggerMainApp.InfoCall())
           //{                
           //    SettingsDiBaseApplicazione = GetSettingsBaseApplicazione();
               CacheBase.InitializeCachedati(30);
           //}
       }//fM


    }//fC
}
